package br.com.canvasForAll.model.entity;


import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "PERFIL")
@NamedQueries(value = {
		@NamedQuery(name = "Perfil.pesquisa", query = "SELECT p FROM Perfil p"),
		@NamedQuery(name = "Perfil.duplicata", query = "SELECT COUNT(p) FROM Perfil p WHERE p.id =:id")
})
public class Perfil implements Serializable {
	
	private static final long serialVersionUID = 7079208618419059221L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "ID_PERFIL", unique = true, nullable = false)
	private Long id;
	
	@Column(name = "NOME", nullable = false)
	private String nome;
	
	@Column(name = "CARGO")
	private String cargo;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATA_CRIACAO", nullable = false)
	private Date dataCriacao;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATA_ULTIMA_ATUALIZACAO", nullable = false)
	private Date dataUltimaAtualizacao;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATA_ULTIMA_SINCRONIZACAO", nullable = true)
	private Date dataUltimaSincronizacao;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATA_ULTIMA_NOTIFICACAO", nullable = true)
	private Date dataUltimaNotificacao;
	
	@Column(name = "FLAG_LOCAL_CRIACAO", length = 1, columnDefinition = "CHAR")
	private String localCriacao;
	
	@Column(name = "FLAG_NOTIFICAR", length = 1, columnDefinition = "CHAR")
	private String notificar;
	
	@Column(name = "FOTO_PERFIL", nullable = true, columnDefinition = "TEXT")
	private String fotoPerfil;
	
	public Perfil(){
		this.localCriacao = "M";
		this.notificar = "S";
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCargo() {
		return cargo;
	}

	public void setCargo(String cargo) {
		this.cargo = cargo;
	}

	public String getFotoPerfil() {
		return fotoPerfil;
	}

	public void setFotoPerfil(String fotoPerfil) {
		this.fotoPerfil = fotoPerfil;
	}

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	public Date getDataUltimaAtualizacao() {
		return dataUltimaAtualizacao;
	}

	public void setDataUltimaAtualizacao(Date dataUltimaAtualizacao) {
		this.dataUltimaAtualizacao = dataUltimaAtualizacao;
	}

	public Date getDataUltimaSincronizacao() {
		return dataUltimaSincronizacao;
	}

	public void setDataUltimaSincronizacao(Date dataUltimaSincronizacao) {
		this.dataUltimaSincronizacao = dataUltimaSincronizacao;
	}

	public Date getDataUltimaNotificacao() {
		return dataUltimaNotificacao;
	}

	public void setDataUltimaNotificacao(Date dataUltimaNotificacao) {
		this.dataUltimaNotificacao = dataUltimaNotificacao;
	}

	public String getLocalCriacao() {
		return localCriacao;
	}

	public void setLocalCriacao(String localCriacao) {
		this.localCriacao = localCriacao;
	}

	public String getNotificar() {
		return notificar;
	}

	public void setNotificar(String notificar) {
		this.notificar = notificar;
	}

}
